package com.totoro.tyrank.data;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class RankingData {
    private String id;
    private String rankName;
    private String valueName;
    private String valueFormat;
    private Boolean enable;
    private String rankBy;
    private ItemDisplayData itemDisplay;
    private Integer updateInterval;
    private Long clearInterval;
    private LocalDateTime endTime;
    private Integer maxStatistics;
    private Integer minStatistics;
    private Boolean attributeLasting;
    private Map<Integer, RankingReceive> rankingReceiveMap;

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class RankingReceive {
        private String rankingText;
        private ItemDisplayData itemDisplay;
        private Attribute attribute;
        private Reward reward;

        @Data
        @NoArgsConstructor
        @AllArgsConstructor
        public class Attribute {
            private ItemDisplayData itemDisplay;
            private List<String> giveAttribute;
        }

        @Data
        @NoArgsConstructor
        @AllArgsConstructor
        public class Reward {
            private ItemDisplayData itemDisplay;
            private List<String> showItems;
            private List<String> action;
        }
    }
}
